
package org.bridgen.lang.semantics.ast;
import java.util.*;



/* Expressions */


public abstract class Expr extends ASTNode<ASTNode> implements Cloneable {
    public void flushCache() {
        super.flushCache();
    }
     @SuppressWarnings({"unchecked", "cast"})  public Expr clone() throws CloneNotSupportedException {
        Expr node = (Expr)super.clone();
        node.in$Circle(false);
        node.is$Final(false);
    return node;
    }
    // Declared in TypeCodeGen.jrag at line 452

	
	
	// Generate attribute checks ex null check
	
	public void generateAttrChecks(String indent, StringBuffer buf) {
		TreeSet<String> set = new TreeSet<String>();
		collectAttributeChecks(set);
		for (String s : set) {
			buf.append(s + " && ");
		}
	}

    // Declared in TypeCodeGen.jrag at line 463

	
	
	// Code generation of expressions
	
	public void generateCode(String indent, StringBuffer buf) {
	}

    // Declared in bridgit.ast at line 3
    // Declared in bridgit.ast line 89

    public Expr() {
        super();


    }

    // Declared in bridgit.ast at line 9


  protected int numChildren() {
    return 0;
  }

    // Declared in bridgit.ast at line 12

  public boolean mayHaveRewrite() { return false; }

    // Declared in TypeAnalysis.jrag at line 67
 @SuppressWarnings({"unchecked", "cast"})     public String type() {
        String type_value = type_compute();
        return type_value;
    }

    private String type_compute() {  return "";  }

    // Declared in PrettyPrint.jrag at line 23
 @SuppressWarnings({"unchecked", "cast"})     public String indent() {
        String indent_value = getParent().Define_String_indent(this, null);
        return indent_value;
    }

public ASTNode rewriteTo() {
    return super.rewriteTo();
}

}
